import pandas as pd
import glob
pd.options.plotting.backend = "plotly"
import plotly
plotly.offline.init_notebook_mode()
dfs = []
for filepath in glob.glob("CAES/*.json"):
dfs.append(pd.read_json(filepath))
df = pd.concat(dfs, ignore_index=True)
df.columns = ['estudiante', 'tarea', 'tipologia', 'tema', 'edad', 'sexo', 'pais', 'l1', 'estudios', 'edad_inicio', 'meses_estudio', 'contactos_habla_es', 'nivel', 'oraciones']
df.head()
| estudiante | tarea | tipologia | tema | edad | sexo | pais | l1 | estudios | edad_inicio | meses_estudio | contactos_habla_es | nivel | oraciones | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 417.0 | 1156.0 | Carta | Carta amigo | 26.0 | Mujer | Brasil | PortuguƩs | Universidad | 25.0 | 8.0 | Amigos | B1 | [Hola Carlos !, Hace mucho que no te veo hombr... |
| 1 | 1387.0 | 3934.0 | Carta | Carta amigo | 20.0 | Mujer | Marruecos | Ćrabe | Universidad | 15.0 | 30.0 | No | A2 | [Hola querida Sara ,, espero que estes muy bie... |
| 2 | 2273.0 | 6370.0 | Postal | Postal vacaciones | 18.0 | Mujer | Bielorrusia | Ruso | Universidad | 18.0 | 8.0 | No | A1 | [Como estais ?, !, Hola amigos ! ?, Espero que... |
| 3 | 1522.0 | 4307.0 | Postal | Postal vacaciones | 22.0 | Hombre | China | Chino mandarĆn | Universidad | 21.0 | 2.0 | No | A2 | [Cuando lleguĆ© a el destino , le propuso que s... |
| 4 | 775.0 | 2159.0 | Correo electrónico | Familia | 27.0 | Mujer | Francia | Francés | Otros | 20.0 | 6.0 | Amigos | A1 | [¿ Que tal ?, un beso, Espero que todo va bien... |
df.nivel.value_counts().plot.barh(title="Distribución de Documentos por Nivel", width=900, height=500)
conteo_paises = df.pais.value_counts()
df.loc[df.pais.isin(list(conteo_paises.index[conteo_paises < 50])), "pais"] = "Otro"
df.pais.value_counts().plot.bar(title="Distribución de PaĆs de Origen (Paises con menos de 50 obs agrupados en 'Otro')", width=900, height=500)
df.tipologia.value_counts().plot.barh(title="Distribución de TipologĆa", width=900, height=500)
pd.crosstab(df.nivel, df.tipologia).plot(kind="bar", title="Distribución de Documentos por Nivel y TipologĆa", width=900, height=500)
df['oraciones_longitud'] = df.oraciones.map(len)
print("Cantidad de oraciones por nivel")
df.groupby('nivel').oraciones_longitud.sum().reset_index()
Cantidad de oraciones por nivel
| nivel | oraciones_longitud | |
|---|---|---|
| 0 | A1 | 27000 |
| 1 | A2 | 30202 |
| 2 | B1 | 25142 |
| 3 | B2 | 13646 |
| 4 | C1 | 12779 |
df.groupby('nivel').oraciones_longitud.sum().plot(kind='barh', width=900, height=500, title="NĆŗmero de *oraciones* por Nivel")
df.edad.plot(kind='hist', width=900, height=500, nbins=15, title="Distribución de Edad")